    BITS 32

    EXTERN _minijavaExit
    EXTERN _printInt
    EXTERN _newObject
    EXTERN _newArray
    EXTERN _assertPtr
    EXTERN _boundCheck

    GLOBAL _minijava_main_1

    SECTION .data
vtable_Element:
    dd ??Init$Element
    dd ??GetAge$Element
    dd ??GetSalary$Element
    dd ??GetMarried$Element
    dd ??Equal$Element
    dd ??Compare$Element
vtable_List:
    dd ??Init$List
    dd ??InitNew$List
    dd ??Insert$List
    dd ??SetNext$List
    dd ??Delete$List
    dd ??Search$List
    dd ??GetEnd$List
    dd ??GetElem$List
    dd ??GetNext$List
    dd ??Print$List
vtable_LL:
    dd ??Start$LL

SECTION .text


_minijava_main_1:
    push ebp
    mov ebp, esp
    sub esp, 12
L74:
    mov eax, 12
    mov edx, ebp
    sub edx, eax
    mov [edx], esi
    mov esi, 4
    mov edx, ebp
    sub edx, esi
    mov [edx], edi
    mov edx, 4
    push edx
    push ecx
    call _newObject
    mov edx, esp
    mov ecx, 8
    mov edi, ebp
    sub edi, ecx
    mov [edx], edx
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov edx, edx
    push edx
    mov edx, 3
    push edx
    call _assertPtr
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov edx, edx
    push edx
    mov edi, 0
    mov ecx, 8
    mov edx, ebp
    sub edx, ecx
    mov edx, [esp]
    mov edx, edx
    mov edx, edx
    add edx, edi
    mov edi, [esp]
    mov edx, 0
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    push eax
    call _printInt
    mov edx, 0
    push edx
    call _minijavaExit
    mov eax, esp
    mov edi, 12
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov esi, edx
    mov edx, 4
    mov edi, ebp
    sub edi, edx
    mov edx, [esp]
    mov edi, edx
    jmp L73
L73:
    
    add esp, 12
    pop ebp
    ret
    ; end of _minijava_main_1

??Init$Element:
    push ebp
    mov ebp, esp
    sub esp, 0
L76:
    mov ecx, ebx
    mov ebx, 8
    mov eax, ebp
    add eax, ebx
    mov eax, [edx]
    mov ebx, 1
    mov ebx, ebx
    shl ebx, 2
    mov ebx, eax
    add ebx, edx
    mov eax, 12
    mov ebx, ebp
    add ebx, eax
    mov ebx, [edx]
    mov [ebx], ebx
    mov ebx, 8
    mov eax, ebp
    add eax, ebx
    mov ebx, [edx]
    mov eax, 2
    mov eax, eax
    shl eax, 2
    mov ebx, ebx
    add ebx, edx
    mov ebx, 16
    mov eax, ebp
    add eax, ebx
    mov ebx, [edx]
    mov [ebx], ebx
    mov eax, 8
    mov ebx, ebp
    add ebx, eax
    mov eax, [edx]
    mov ebx, 3
    mov ebx, ebx
    shl ebx, 2
    mov ebx, eax
    add ebx, edx
    mov eax, 20
    mov ebx, ebp
    add ebx, eax
    mov ebx, [edx]
    mov [ebx], ebx
    mov eax, 1
    mov ebx, ecx
    jmp L75
L75:
    
    add esp, 0
    pop ebp
    ret
    ; end of ??Init$Element

??GetAge$Element:
    push ebp
    mov ebp, esp
    sub esp, 0
L78:
    mov eax, 8
    mov edx, ebp
    add edx, eax
    mov eax, [esp]
    mov edx, 1
    mov edx, edx
    shl edx, 2
    mov eax, eax
    add eax, esp
    mov eax, [esp]
    jmp L77
L77:
    
    add esp, 0
    pop ebp
    ret
    ; end of ??GetAge$Element

??GetSalary$Element:
    push ebp
    mov ebp, esp
    sub esp, 0
L80:
    mov ecx, 8
    mov eax, ebp
    add eax, ecx
    mov ecx, [esp]
    mov eax, 2
    mov eax, eax
    shl eax, 2
    mov ecx, ecx
    add ecx, esp
    mov eax, [esp]
    jmp L79
L79:
    
    add esp, 0
    pop ebp
    ret
    ; end of ??GetSalary$Element

??GetMarried$Element:
    push ebp
    mov ebp, esp
    sub esp, 0
L82:
    mov edx, 8
    mov ecx, ebp
    add ecx, edx
    mov edx, [eax]
    mov ecx, 3
    mov ecx, ecx
    shl ecx, 2
    mov ecx, edx
    add ecx, eax
    mov eax, [eax]
    jmp L81
L81:
    
    add esp, 0
    pop ebp
    ret
    ; end of ??GetMarried$Element

??Equal$Element:
    push ebp
    mov ebp, esp
    sub esp, 44
L84:
    mov edx, 4
    mov eax, ebp
    sub eax, edx
    mov [ebx], ebx
    mov edx, 16
    mov ebx, ebp
    sub ebx, edx
    mov [ebx], esi
    mov edx, 28
    mov ebx, ebp
    sub ebx, edx
    mov [ebx], edi
    mov ebx, 0
    mov ebx, ebx
    mov ebx, 0
    mov eax, ebx
    mov edi, 40
    mov ebx, ebp
    sub ebx, edi
    mov [ebx], eax
    mov ebx, 0
    mov eax, ebx
    mov ebx, 12
    mov edi, ebp
    sub edi, ebx
    mov [ebx], eax
    mov ebx, 0
    mov eax, ebx
    mov ebx, 8
    mov edi, ebp
    sub edi, ebx
    mov [ebx], eax
    mov ebx, 1
    mov eax, ebx
    mov edi, 8
    mov ebx, ebp
    sub ebx, edi
    mov [ebx], eax
    mov edi, 12
    mov ebx, ebp
    add ebx, edi
    mov ebx, [esp]
    mov edx, 36
    mov edi, ebp
    sub edi, edx
    mov [ebx], ebx
    mov edi, 36
    mov ebx, ebp
    sub ebx, edi
    mov ebx, [esp]
    mov ebx, ebx
    push ebx
    mov ebx, 41
    push ebx
    call _assertPtr
    mov ebx, 36
    mov edi, ebp
    sub edi, ebx
    mov ebx, [esp]
    mov ebx, ebx
    push ebx
    mov edx, 0
    mov edi, 36
    mov ebx, ebp
    sub ebx, edi
    mov ebx, [esp]
    mov ebx, ebx
    mov ebx, ebx
    add ebx, edx
    mov edi, [esp]
    mov ebx, 1
    mov ebx, ebx
    shl ebx, 2
    mov ebx, edi
    add ebx, esp
    mov ebx, [esp]
    call ebx
    mov ebx, 12
    mov edi, ebp
    sub edi, ebx
    mov [ebx], eax
    mov edi, 8
    mov ebx, ebp
    add ebx, edi
    mov ebx, [esp]
    mov ebx, ebx
    mov edx, 32
    mov edi, ebp
    sub edi, edx
    mov [ebx], ebx
    mov ebx, 32
    mov edi, ebp
    sub edi, ebx
    mov ebx, [esp]
    mov ebx, ebx
    push ebx
    mov ebx, 42
    push ebx
    call _assertPtr
    mov ebx, 32
    mov edi, ebp
    sub edi, ebx
    mov ebx, [esp]
    mov ebx, ebx
    push ebx
    mov edi, 12
    mov ebx, ebp
    sub ebx, edi
    mov ebx, [esp]
    mov eax, ebx
    push eax
    mov ebx, 8
    mov edi, ebp
    add edi, ebx
    mov ebx, [esp]
    mov edi, 1
    mov edi, edi
    shl edi, 2
    mov ebx, ebx
    add ebx, esp
    mov ebx, [esp]
    push ebx
    mov edi, 0
    mov ebx, 32
    mov edx, ebp
    sub edx, ebx
    mov ebx, [esp]
    mov ebx, ebx
    mov ebx, ebx
    add ebx, edi
    mov edi, [esp]
    mov ebx, 5
    mov ebx, ebx
    shl ebx, 2
    mov ebx, edi
    add ebx, esp
    mov ebx, [esp]
    call ebx
    mov ebx, 0
    cmp eax, ebx
    je L85
    jmp L3
L85:
    jmp L4
L3:
    mov ebx, 0
    mov ebx, ebx
L5:
    mov edi, 0
    cmp ebx, edi
    je L86
    jmp L0
L86:
    jmp L1
L0:
    mov ebx, 0
    mov eax, ebx
    mov ebx, 8
    mov edi, ebp
    sub edi, ebx
    mov [ebx], eax
L2:
    mov edi, 8
    mov ebx, ebp
    sub ebx, edi
    mov ebx, [esp]
    mov eax, ebx
    mov ebx, 4
    mov edi, ebp
    sub edi, ebx
    mov ebx, [esp]
    mov ebx, ebx
    mov edi, 16
    mov edx, ebp
    sub edx, edi
    mov edi, [esp]
    mov esi, edi
    mov edi, 28
    mov edx, ebp
    sub edx, edi
    mov edi, [esp]
    mov edi, edi
    jmp L83
L4:
    mov ebx, 1
    mov ebx, ebx
    jmp L5
L1:
    mov ebx, 12
    mov edi, ebp
    add edi, ebx
    mov ebx, [esp]
    mov edi, 24
    mov edx, ebp
    sub edx, edi
    mov [ebx], ebx
    mov ebx, 24
    mov edi, ebp
    sub edi, ebx
    mov ebx, [esp]
    mov ebx, ebx
    push ebx
    mov ebx, 44
    push ebx
    call _assertPtr
    mov ebx, 24
    mov edi, ebp
    sub edi, ebx
    mov ebx, [esp]
    mov ebx, ebx
    push ebx
    mov edi, 0
    mov edx, 24
    mov ebx, ebp
    sub ebx, edx
    mov ebx, [esp]
    mov ebx, ebx
    mov ebx, ebx
    add ebx, edi
    mov edi, [esp]
    mov ebx, 2
    mov ebx, ebx
    shl ebx, 2
    mov ebx, edi
    add ebx, esp
    mov ebx, [esp]
    call ebx
    mov edi, 40
    mov ebx, ebp
    sub ebx, edi
    mov [ebx], eax
    mov ebx, 8
    mov edi, ebp
    add edi, ebx
    mov ebx, [esp]
    mov ebx, ebx
    mov edi, 44
    mov edx, ebp
    sub edx, edi
    mov [ebx], ebx
    mov edi, 44
    mov ebx, ebp
    sub ebx, edi
    mov ebx, [esp]
    push ebx
    mov ebx, 45
    push ebx
    call _assertPtr
    mov edi, 44
    mov ebx, ebp
    sub ebx, edi
    mov ebx, [esp]
    mov ebx, ebx
    push ebx
    mov ebx, 40
    mov edi, ebp
    sub edi, ebx
    mov ebx, [esp]
    mov eax, ebx
    push eax
    mov ebx, 8
    mov edi, ebp
    add edi, ebx
    mov edi, [esp]
    mov ebx, 2
    mov ebx, ebx
    shl ebx, 2
    mov ebx, edi
    add ebx, esp
    mov ebx, [esp]
    push ebx
    mov edi, 0
    mov ebx, 44
    mov edx, ebp
    sub edx, ebx
    mov ebx, [esp]
    mov ebx, ebx
    mov ebx, ebx
    add ebx, edi
    mov edi, [esp]
    mov ebx, 5
    mov ebx, ebx
    shl ebx, 2
    mov ebx, edi
    add ebx, esp
    mov ebx, [esp]
    call ebx
    mov ebx, 0
    cmp eax, ebx
    je L87
    jmp L9
L87:
    jmp L10
L9:
    mov ebx, 0
    mov ebx, ebx
L11:
    mov edi, 0
    cmp ebx, edi
    je L88
    jmp L6
L88:
    jmp L7
L6:
    mov ebx, 0
    mov eax, ebx
    mov ebx, 8
    mov edi, ebp
    sub edi, ebx
    mov [ebx], eax
L8:
    jmp L2
L10:
    mov ebx, 1
    jmp L11
L7:
    mov ebx, 8
    mov edi, ebp
    add edi, ebx
    mov ebx, [esp]
    mov edi, 3
    mov edi, edi
    shl edi, 2
    mov ebx, ebx
    add ebx, esp
    mov ebx, [esp]
    mov edi, 0
    cmp ebx, edi
    je L89
    jmp L12
L89:
    jmp L13
L12:
    mov ebx, 12
    mov edx, ebp
    add edx, ebx
    mov edx, [edi]
    mov eax, 20
    mov ebx, ebp
    sub ebx, eax
    mov [ebx], edx
    mov edx, 20
    mov ebx, ebp
    sub ebx, edx
    mov ebx, [edi]
    mov edx, ebx
    push edx
    mov ebx, 48
    push ebx
    call _assertPtr
    mov edx, 20
    mov ebx, ebp
    sub ebx, edx
    mov ebx, [edi]
    mov edx, ebx
    push edx
    mov ebx, 0
    mov eax, 20
    mov edx, ebp
    sub edx, eax
    mov edx, [edi]
    mov edx, edx
    mov edx, edx
    add edx, ebx
    mov edi, [edi]
    mov ebx, 3
    mov ebx, ebx
    shl ebx, 2
    mov ebx, edi
    add ebx, esp
    mov ebx, [esp]
    call ebx
    mov ebx, 0
    cmp eax, ebx
    je L90
    jmp L18
L90:
    jmp L19
L18:
    mov ebx, 0
L20:
    mov edi, 0
    cmp ebx, edi
    je L91
    jmp L15
L91:
    jmp L16
L15:
    mov ebx, 0
    mov eax, ebx
    mov ebx, 8
    mov edi, ebp
    sub edi, ebx
    mov [ebx], eax
L17:
L14:
    jmp L8
L19:
    mov ebx, 1
    jmp L20
L16:
    mov ebx, 0
    mov ebx, ebx
    jmp L17
L13:
    mov edi, 12
    mov ebx, ebp
    add ebx, edi
    mov ebx, [esp]
    push ebx
    mov edi, 51
    push edi
    call _assertPtr
    push ebx
    mov edi, 0
    mov ebx, ebx
    add ebx, edi
    mov ebx, [esp]
    mov edi, 3
    mov edi, edi
    shl edi, 2
    mov ebx, ebx
    add ebx, esp
    mov ebx, [esp]
    call ebx
    mov ebx, 0
    cmp eax, ebx
    je L92
    jmp L21
L92:
    jmp L22
L21:
    mov ebx, 0
    mov eax, ebx
    mov edi, 8
    mov ebx, ebp
    sub ebx, edi
    mov [ebx], eax
L23:
    jmp L14
L22:
    mov ebx, 0
    mov ebx, ebx
    jmp L23
L83:
    
    add esp, 44
    pop ebp
    ret
    ; end of ??Equal$Element

??Compare$Element:
    push ebp
    mov ebp, esp
    sub esp, 16
L94:
    mov edx, 12
    mov eax, ebp
    sub eax, edx
    mov [eax], ebx
    mov edx, 8
    mov eax, ebp
    sub eax, edx
    mov [eax], esi
    mov edx, 16
    mov eax, ebp
    sub eax, edx
    mov [eax], edi
    mov eax, 0
    mov eax, 0
    mov eax, eax
    mov eax, 0
    mov eax, eax
    mov edx, 16
    mov eax, ebp
    add eax, edx
    mov eax, [ecx]
    mov edx, 1
    mov eax, eax
    add eax, edx
    mov eax, ecx
    mov eax, 12
    mov edx, ebp
    add edx, eax
    mov eax, [ecx]
    mov edx, 4
    mov ebx, ebp
    sub ebx, edx
    mov [eax], eax
    mov eax, 16
    mov edx, ebp
    add edx, eax
    mov ebx, [ecx]
    mov edx, 4
    mov eax, ebp
    sub eax, edx
    mov eax, [ecx]
    mov eax, eax
    cmp eax, ebx
    jl L95
    jmp L25
L95:
    jmp L24
L25:
    mov edx, 12
    mov ebx, ebp
    add ebx, edx
    mov edx, [ecx]
    cmp edx, eax
    jl L96
    jmp L31
L96:
    jmp L30
L31:
    mov eax, 1
L32:
    mov edx, 0
    cmp eax, edx
    je L97
    jmp L27
L97:
    jmp L28
L27:
    mov eax, 0
    mov eax, eax
L29:
L26:
    mov eax, eax
    mov ebx, 12
    mov edx, ebp
    sub edx, ebx
    mov edx, [ecx]
    mov ebx, edx
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov edx, [ecx]
    mov esi, edx
    mov edi, 16
    mov edx, ebp
    sub edx, edi
    mov ecx, [ecx]
    mov edi, ecx
    jmp L93
L24:
    mov eax, 0
    mov eax, eax
    jmp L26
L30:
    mov eax, 0
    jmp L32
L28:
    mov eax, 1
    mov eax, eax
    jmp L29
L93:
    
    add esp, 16
    pop ebp
    ret
    ; end of ??Compare$Element

??Init$List:
    push ebp
    mov ebp, esp
    sub esp, 0
L99:
    mov ecx, 8
    mov eax, ebp
    add eax, ecx
    mov eax, [esp]
    mov ecx, 3
    mov ecx, ecx
    shl ecx, 2
    mov eax, eax
    add eax, esp
    mov eax, 1
    mov [eax], eax
    mov eax, 1
    jmp L98
L98:
    
    add esp, 0
    pop ebp
    ret
    ; end of ??Init$List

??InitNew$List:
    push ebp
    mov ebp, esp
    sub esp, 0
L101:
    mov ebx, ebx
    mov edx, esi
    mov eax, 8
    mov esi, ebp
    add esi, eax
    mov esi, [ecx]
    mov eax, 3
    mov eax, eax
    shl eax, 2
    mov eax, esi
    add eax, ecx
    mov eax, 20
    mov esi, ebp
    add esi, eax
    mov eax, [ecx]
    mov [eax], eax
    mov eax, 8
    mov esi, ebp
    add esi, eax
    mov esi, [ecx]
    mov eax, 1
    mov eax, eax
    shl eax, 2
    mov eax, esi
    add eax, ecx
    mov eax, 12
    mov esi, ebp
    add esi, eax
    mov eax, [ecx]
    mov [eax], eax
    mov eax, 8
    mov esi, ebp
    add esi, eax
    mov esi, [ecx]
    mov eax, 2
    mov eax, eax
    shl eax, 2
    mov eax, esi
    add eax, ecx
    mov eax, 16
    mov esi, ebp
    add esi, eax
    mov eax, [ecx]
    mov [eax], eax
    mov eax, 1
    mov ebx, ebx
    mov esi, edx
    jmp L100
L100:
    
    add esp, 0
    pop ebp
    ret
    ; end of ??InitNew$List

??Insert$List:
    push ebp
    mov ebp, esp
    sub esp, 16
L103:
    mov ecx, 4
    mov eax, ebp
    sub eax, ecx
    mov [eax], ebx
    mov ecx, 16
    mov eax, ebp
    sub eax, ecx
    mov [eax], esi
    mov eax, 12
    mov esi, ebp
    sub esi, eax
    mov [edi], edi
    mov edi, 0
    mov edi, edi
    mov edi, 0
    mov eax, edi
    mov esi, 8
    mov edi, ebp
    sub edi, esi
    mov [edi], eax
    mov edi, 0
    mov eax, edi
    mov edi, 8
    mov eax, ebp
    add eax, edi
    mov edi, [edx]
    mov eax, edi
    mov edi, 8
    mov esi, ebp
    sub esi, edi
    mov [edi], eax
    mov edi, 16
    push edi
    push edx
    call _newObject
    mov edi, esp
    mov edi, edi
    push edi
    mov eax, 100
    push eax
    call _assertPtr
    push edi
    mov eax, 12
    mov esi, ebp
    add esi, eax
    mov eax, [esp]
    push eax
    mov esi, 8
    mov eax, ebp
    sub eax, esi
    mov eax, [esp]
    mov eax, eax
    push eax
    mov eax, 0
    push eax
    mov esi, 0
    mov eax, edi
    add eax, esi
    mov esi, [esp]
    mov eax, 1
    mov eax, eax
    shl eax, 2
    mov eax, esi
    add eax, esp
    mov eax, [esp]
    call eax
    mov eax, eax
    mov eax, edi
    mov esi, 4
    mov edi, ebp
    sub edi, esi
    mov edi, [esp]
    mov ebx, edi
    mov esi, 16
    mov edi, ebp
    sub edi, esi
    mov edi, [esp]
    mov esi, edi
    mov edi, 12
    mov edx, ebp
    sub edx, edi
    mov edi, [esp]
    mov edi, edi
    jmp L102
L102:
    
    add esp, 16
    pop ebp
    ret
    ; end of ??Insert$List

??SetNext$List:
    push ebp
    mov ebp, esp
    sub esp, 0
L105:
    mov eax, 8
    mov ecx, ebp
    add ecx, eax
    mov eax, [edx]
    mov ecx, 2
    mov ecx, ecx
    shl ecx, 2
    mov eax, eax
    add eax, edx
    mov eax, 12
    mov ecx, ebp
    add ecx, eax
    mov edx, [edx]
    mov [edx], edx
    mov eax, 1
    jmp L104
L104:
    
    add esp, 0
    pop ebp
    ret
    ; end of ??SetNext$List

??Delete$List:
    push ebp
    mov ebp, esp
    sub esp, 44
L107:
    mov edx, 36
    mov ecx, ebp
    sub ecx, edx
    mov [ecx], ebx
    mov ecx, 24
    mov ebx, ebp
    sub ebx, ecx
    mov [ecx], esi
    mov ebx, 44
    mov ecx, ebp
    sub ecx, ebx
    mov [ecx], edi
    mov ecx, 0
    mov ecx, ecx
    mov ecx, 0
    mov edi, ecx
    mov eax, 0
    mov ebx, 16
    mov ecx, ebp
    sub ecx, ebx
    mov [ecx], eax
    mov ecx, 0
    mov ecx, ecx
    mov ebx, 8
    mov edi, ebp
    sub edi, ebx
    mov [ecx], ecx
    mov ecx, 0
    mov ebx, ecx
    mov ecx, 0
    mov eax, ecx
    mov ecx, 40
    mov ebx, ebp
    sub ebx, ecx
    mov [ecx], eax
    mov ecx, 0
    mov ecx, ecx
    mov ecx, 0
    mov ecx, ecx
    mov ebx, 12
    mov edi, ebp
    sub edi, ebx
    mov [ecx], ecx
    mov ecx, 0
    mov ecx, ecx
    mov edi, 4
    mov ebx, ebp
    sub ebx, edi
    mov [ecx], ecx
    mov ebx, 8
    mov ecx, ebp
    add ecx, ebx
    mov ecx, [esp]
    mov ebx, 4
    mov edi, ebp
    sub edi, ebx
    mov [ecx], ecx
    mov ecx, 0
    mov ecx, ecx
    mov edi, 12
    mov ebx, ebp
    sub ebx, edi
    mov [ecx], ecx
    mov ecx, 0
    mov ebx, 1
    mov ecx, ecx
    sub ecx, ebx
    mov edi, esp
    mov ecx, 8
    mov ebx, ebp
    add ebx, ecx
    mov ecx, [esp]
    mov eax, ecx
    mov ecx, 40
    mov ebx, ebp
    sub ebx, ecx
    mov [ecx], eax
    mov ebx, 8
    mov ecx, ebp
    add ecx, ebx
    mov ecx, [esp]
    mov ebx, ecx
    mov ecx, 8
    mov ebx, ebp
    add ebx, ecx
    mov ecx, [esp]
    mov ebx, 3
    mov ebx, ebx
    shl ebx, 2
    mov ecx, ecx
    add ecx, esp
    mov ecx, [esp]
    mov ecx, ecx
    mov edi, 8
    mov ebx, ebp
    sub ebx, edi
    mov [ecx], ecx
    mov ebx, 8
    mov ecx, ebp
    add ecx, ebx
    mov ebx, [esp]
    mov ecx, 1
    mov ecx, ecx
    shl ecx, 2
    mov ecx, ebx
    add ecx, esp
    mov ecx, [esp]
    mov eax, ecx
    mov ebx, 16
    mov ecx, ebp
    sub ecx, ebx
    mov [ecx], eax
L33:
    mov edi, 0
    mov ecx, 8
    mov ebx, ebp
    sub ebx, ecx
    mov ecx, [esp]
    mov ecx, ecx
    cmp ecx, edi
    je L108
    jmp L36
L108:
    jmp L37
L36:
    mov ebx, 0
L38:
    mov ecx, 0
    cmp ebx, ecx
    jne L109
    jmp L42
L109:
    jmp L43
L42:
    mov ecx, 0
L44:
    mov ebx, 0
    cmp ecx, ebx
    je L110
    jmp L35
L110:
    jmp L34
L35:
    mov ecx, 12
    mov ebx, ebp
    add ebx, ecx
    mov ebx, [edi]
    push ebx
    mov ecx, 132
    push ecx
    call _assertPtr
    push ebx
    mov ecx, 16
    mov edx, ebp
    sub edx, ecx
    mov ecx, [edi]
    mov eax, ecx
    push eax
    mov edx, 0
    mov ecx, ebx
    add ecx, edx
    mov ebx, [edi]
    mov ecx, 4
    mov ecx, ecx
    shl ecx, 2
    mov ecx, ebx
    add ecx, edi
    mov ecx, [edi]
    call ecx
    mov ecx, 0
    cmp eax, ecx
    je L111
    jmp L52
L111:
    jmp L53
L52:
    mov ecx, 1
    mov ecx, ecx
    mov ebx, 12
    mov edx, ebp
    sub edx, ebx
    mov [ecx], ecx
    mov ecx, 0
    cmp edi, ecx
    jl L112
    jmp L56
L112:
    jmp L55
L56:
    mov ecx, 0
    mov edx, 555
    mov ecx, ecx
    sub ecx, edx
    push ebx
    call _printInt
    mov edx, 28
    mov ecx, ebp
    sub ecx, edx
    mov [ecx], ebx
    mov ebx, 28
    mov ecx, ebp
    sub ecx, ebx
    mov ecx, [edi]
    mov ebx, ecx
    push ebx
    mov ecx, 140
    push ecx
    call _assertPtr
    mov edx, 0
    mov ecx, 28
    mov ebx, ebp
    sub ebx, ecx
    mov ecx, [edi]
    mov ebx, ecx
    mov ecx, ebx
    add ecx, edx
    mov ebx, [edi]
    mov ecx, 3
    mov ecx, ecx
    shl ecx, 2
    mov ecx, ebx
    add ecx, edi
    mov ecx, [edi]
    mov ecx, ecx
    mov ebx, 28
    mov ecx, ebp
    sub ecx, ebx
    mov ecx, [edi]
    mov ebx, ecx
    mov ecx, 32
    mov edx, ebp
    sub edx, ecx
    mov [ecx], ebx
    mov ecx, 40
    mov ebx, ebp
    sub ebx, ecx
    mov ecx, [edi]
    mov eax, ecx
    mov ebx, 20
    mov ecx, ebp
    sub ecx, ebx
    mov [ecx], eax
    mov ebx, 20
    mov ecx, ebp
    sub ecx, ebx
    mov ecx, [edi]
    mov eax, ecx
    push eax
    mov ecx, 140
    push ecx
    call _assertPtr
    mov ebx, 20
    mov ecx, ebp
    sub ecx, ebx
    mov eax, [edi]
    push eax
    mov edx, 0
    mov ecx, 20
    mov ebx, ebp
    sub ebx, ecx
    mov ecx, [edi]
    mov eax, ecx
    mov ecx, eax
    add ecx, edx
    mov ebx, [edi]
    mov ecx, 8
    mov ecx, ecx
    shl ecx, 2
    mov ecx, ebx
    add ecx, edi
    mov ecx, [edi]
    call ecx
    mov ecx, 32
    mov ebx, ebp
    sub ebx, ecx
    mov ecx, [edi]
    mov ebx, ecx
    push ebx
    push eax
    mov ecx, eax
    mov ecx, 0
    mov ebx, 555
    mov ecx, ecx
    sub ecx, ebx
    push edi
    call _printInt
L57:
L54:
    mov ebx, 0
    mov edi, 12
    mov ecx, ebp
    sub ecx, edi
    mov ecx, [esi]
    mov ecx, ecx
    cmp ecx, ebx
    je L113
    jmp L49
L113:
    jmp L50
L49:
    mov ebx, 0
L51:
    mov ecx, 0
    cmp ebx, ecx
    je L114
    jmp L46
L114:
    jmp L47
L46:
    mov ecx, 40
    mov ebx, ebp
    sub ebx, ecx
    mov ecx, [edi]
    mov eax, ecx
    mov ebx, eax
    mov ebx, 40
    mov ecx, ebp
    sub ecx, ebx
    mov ecx, [edi]
    mov eax, ecx
    mov esi, eax
    push esi
    mov ecx, 147
    push ecx
    call _assertPtr
    push esi
    mov ebx, 0
    mov ecx, esi
    add ecx, ebx
    mov ebx, [edi]
    mov ecx, 8
    mov ecx, ecx
    shl ecx, 2
    mov ecx, ebx
    add ecx, edi
    mov ecx, [edi]
    call ecx
    mov ecx, 40
    mov ebx, ebp
    sub ebx, ecx
    mov [ecx], eax
    mov ecx, 40
    mov ebx, ebp
    sub ebx, ecx
    mov ecx, [edi]
    mov eax, ecx
    mov esi, eax
    push esi
    mov ecx, 148
    push ecx
    call _assertPtr
    push esi
    mov ebx, 0
    mov ecx, esi
    add ecx, ebx
    mov ecx, [edi]
    mov ebx, 6
    mov ebx, ebx
    shl ebx, 2
    mov ecx, ecx
    add ecx, edi
    mov ecx, [edi]
    call ecx
    mov ecx, eax
    mov ebx, 8
    mov esi, ebp
    sub esi, ebx
    mov [ecx], ecx
    mov ebx, 40
    mov ecx, ebp
    sub ecx, ebx
    mov ecx, [edi]
    mov eax, ecx
    mov esi, eax
    push esi
    mov ecx, 149
    push ecx
    call _assertPtr
    push esi
    mov ebx, 0
    mov ecx, esi
    add ecx, ebx
    mov ecx, [edi]
    mov ebx, 7
    mov ebx, ebx
    shl ebx, 2
    mov ecx, ecx
    add ecx, edi
    mov ecx, [edi]
    call ecx
    mov ebx, 16
    mov ecx, ebp
    sub ecx, ebx
    mov [ecx], eax
    mov ecx, 1
    mov edi, ecx
L48:
    jmp L33
L37:
    mov ebx, 1
    jmp L38
L43:
    mov ebx, 0
    mov ecx, 12
    mov edi, ebp
    sub edi, ecx
    mov ecx, [esp]
    mov ecx, ecx
    cmp ecx, ebx
    je L115
    jmp L39
L115:
    jmp L40
L39:
    mov ecx, 0
L41:
    mov ebx, 0
    cmp ecx, ebx
    je L116
    jmp L45
L116:
    jmp L42
L45:
    mov ecx, 1
    jmp L44
L40:
    mov ecx, 1
    jmp L41
L55:
    mov ecx, 40
    mov ebx, ebp
    sub ebx, ecx
    mov ecx, [edi]
    mov eax, ecx
    mov ebx, eax
    push ebx
    mov ecx, 136
    push ecx
    call _assertPtr
    push ebx
    mov ecx, 0
    mov ebx, ebx
    add ebx, ecx
    mov ebx, [edi]
    mov ecx, 8
    mov ecx, ecx
    shl ecx, 2
    mov ecx, ebx
    add ecx, edi
    mov ecx, [edi]
    call ecx
    mov ecx, eax
    mov ebx, 4
    mov edi, ebp
    sub edi, ebx
    mov [ecx], ecx
    jmp L57
L53:
    mov ecx, 0
    mov ecx, ecx
    jmp L54
L50:
    mov ebx, 1
    jmp L51
L47:
    mov ecx, 0
    mov ecx, ecx
    jmp L48
L34:
    mov ebx, 4
    mov ecx, ebp
    sub ecx, ebx
    mov ecx, [esp]
    mov ecx, ecx
    mov eax, ecx
    mov ebx, 36
    mov ecx, ebp
    sub ecx, ebx
    mov ecx, [esp]
    mov ebx, ecx
    mov edi, 24
    mov ecx, ebp
    sub ecx, edi
    mov ecx, [esp]
    mov esi, ecx
    mov edi, 44
    mov ecx, ebp
    sub ecx, edi
    mov ecx, [esp]
    mov edi, ecx
    jmp L106
L106:
    
    add esp, 44
    pop ebp
    ret
    ; end of ??Delete$List

??Search$List:
    push ebp
    mov ebp, esp
    sub esp, 36
L118:
    mov ebx, ebx
    mov ecx, 24
    mov eax, ebp
    sub eax, ecx
    mov [ebx], ebx
    mov esi, esi
    mov ecx, 4
    mov ebx, ebp
    sub ebx, ecx
    mov [esi], esi
    mov ecx, edi
    mov ebx, 16
    mov esi, ebp
    sub esi, ebx
    mov [esi], ecx
    mov esi, 0
    mov esi, esi
    mov esi, 0
    mov esi, esi
    mov ecx, 20
    mov ebx, ebp
    sub ebx, ecx
    mov [esi], esi
    mov esi, 0
    mov eax, esi
    mov ebx, 36
    mov esi, ebp
    sub esi, ebx
    mov [esi], eax
    mov esi, 0
    mov ebx, esi
    mov ecx, 32
    mov esi, ebp
    sub esi, ecx
    mov [esi], ebx
    mov esi, 0
    mov eax, esi
    mov ebx, 28
    mov esi, ebp
    sub esi, ebx
    mov [esi], eax
    mov esi, 0
    mov eax, esi
    mov esi, 28
    mov ebx, ebp
    sub ebx, esi
    mov [esi], eax
    mov ebx, 8
    mov esi, ebp
    add esi, ebx
    mov esi, [edi]
    mov ebx, esi
    mov esi, 32
    mov ecx, ebp
    sub ecx, esi
    mov [esi], ebx
    mov esi, 8
    mov ebx, ebp
    add ebx, esi
    mov esi, [edi]
    mov ebx, 3
    mov ebx, ebx
    shl ebx, 2
    mov esi, esi
    add esi, edi
    mov esi, [edi]
    mov esi, esi
    mov ebx, 20
    mov ecx, ebp
    sub ecx, ebx
    mov [esi], esi
    mov ebx, 8
    mov esi, ebp
    add esi, ebx
    mov esi, [edi]
    mov ebx, 1
    mov ebx, ebx
    shl ebx, 2
    mov esi, esi
    add esi, edi
    mov esi, [edi]
    mov eax, esi
    mov esi, 36
    mov ebx, ebp
    sub ebx, esi
    mov [esi], eax
L58:
    mov ebx, 0
    mov ecx, 20
    mov esi, ebp
    sub esi, ecx
    mov esi, [edi]
    mov esi, esi
    cmp esi, ebx
    je L119
    jmp L61
L119:
    jmp L62
L61:
    mov esi, 0
L63:
    mov ebx, 0
    cmp esi, ebx
    je L120
    jmp L60
L120:
    jmp L59
L60:
    mov esi, 12
    mov ebx, ebp
    add ebx, esi
    mov esi, [edi]
    mov esi, esi
    mov ebx, 8
    mov ecx, ebp
    sub ecx, ebx
    mov [esi], esi
    mov ebx, 8
    mov esi, ebp
    sub esi, ebx
    mov esi, [edi]
    mov esi, esi
    push esi
    mov esi, 170
    push esi
    call _assertPtr
    mov esi, 8
    mov ebx, ebp
    sub ebx, esi
    mov esi, [edi]
    mov esi, esi
    push esi
    mov esi, 36
    mov ebx, ebp
    sub ebx, esi
    mov esi, [edi]
    mov eax, esi
    push eax
    mov ecx, 0
    mov ebx, 8
    mov esi, ebp
    sub esi, ebx
    mov esi, [edi]
    mov esi, esi
    mov esi, esi
    add esi, ecx
    mov esi, [edi]
    mov ebx, 4
    mov ebx, ebx
    shl ebx, 2
    mov esi, esi
    add esi, edi
    mov esi, [edi]
    call esi
    mov esi, 0
    cmp eax, esi
    je L121
    jmp L64
L121:
    jmp L65
L64:
    mov eax, 1
    mov ebx, 28
    mov esi, ebp
    sub esi, ebx
    mov [esi], eax
L66:
    mov esi, 32
    mov ebx, ebp
    sub ebx, esi
    mov esi, [edi]
    mov ebx, esi
    mov esi, 12
    mov ecx, ebp
    sub ecx, esi
    mov [esi], ebx
    mov esi, 12
    mov ebx, ebp
    sub ebx, esi
    mov esi, [edi]
    mov ebx, esi
    push ebx
    mov esi, 174
    push esi
    call _assertPtr
    mov ebx, 12
    mov esi, ebp
    sub esi, ebx
    mov esi, [edi]
    mov ebx, esi
    push ebx
    mov esi, 0
    mov ebx, 12
    mov ecx, ebp
    sub ecx, ebx
    mov ebx, [edi]
    mov ebx, ebx
    mov ebx, ebx
    add ebx, esi
    mov esi, [edi]
    mov ebx, 8
    mov ebx, ebx
    shl ebx, 2
    mov esi, esi
    add esi, edi
    mov esi, [edi]
    call esi
    mov ebx, eax
    mov ecx, 32
    mov esi, ebp
    sub esi, ecx
    mov [esi], ebx
    mov esi, 32
    mov ebx, ebp
    sub ebx, esi
    mov esi, [edi]
    mov ebx, esi
    push ebx
    mov esi, 175
    push esi
    call _assertPtr
    push ebx
    mov esi, 0
    mov ebx, ebx
    add ebx, esi
    mov ebx, [edi]
    mov esi, 6
    mov esi, esi
    shl esi, 2
    mov esi, ebx
    add esi, edi
    mov esi, [edi]
    call esi
    mov esi, eax
    mov ecx, 20
    mov ebx, ebp
    sub ebx, ecx
    mov [esi], esi
    mov esi, 32
    mov ebx, ebp
    sub ebx, esi
    mov esi, [edi]
    mov ebx, esi
    mov esi, ebx
    push esi
    mov ebx, 176
    push ebx
    call _assertPtr
    push esi
    mov ebx, 0
    mov esi, esi
    add esi, ebx
    mov ebx, [edi]
    mov esi, 7
    mov esi, esi
    shl esi, 2
    mov esi, ebx
    add esi, edi
    mov esi, [edi]
    call esi
    mov ebx, 36
    mov esi, ebp
    sub esi, ebx
    mov [esi], eax
    jmp L58
L62:
    mov esi, 1
    jmp L63
L65:
    mov esi, 0
    mov esi, esi
    jmp L66
L59:
    mov esi, 28
    mov ebx, ebp
    sub ebx, esi
    mov esi, [edi]
    mov eax, esi
    mov esi, 24
    mov ebx, ebp
    sub ebx, esi
    mov esi, [edi]
    mov ebx, esi
    mov ebx, ebx
    mov ecx, 4
    mov esi, ebp
    sub esi, ecx
    mov esi, [edi]
    mov esi, esi
    mov esi, esi
    mov edx, 16
    mov ecx, ebp
    sub ecx, edx
    mov edi, [edi]
    mov ecx, edi
    mov edi, ecx
    jmp L117
L117:
    
    add esp, 36
    pop ebp
    ret
    ; end of ??Search$List

??GetEnd$List:
    push ebp
    mov ebp, esp
    sub esp, 0
L123:
    mov edx, 8
    mov eax, ebp
    add eax, edx
    mov eax, [esp]
    mov edx, 3
    mov edx, edx
    shl edx, 2
    mov edx, eax
    add edx, esp
    mov eax, [esp]
    jmp L122
L122:
    
    add esp, 0
    pop ebp
    ret
    ; end of ??GetEnd$List

??GetElem$List:
    push ebp
    mov ebp, esp
    sub esp, 0
L125:
    mov ecx, 8
    mov eax, ebp
    add eax, ecx
    mov ecx, [esp]
    mov eax, 1
    mov eax, eax
    shl eax, 2
    mov eax, ecx
    add eax, esp
    mov eax, [esp]
    jmp L124
L124:
    
    add esp, 0
    pop ebp
    ret
    ; end of ??GetElem$List

??GetNext$List:
    push ebp
    mov ebp, esp
    sub esp, 0
L127:
    mov edx, 8
    mov ecx, ebp
    add ecx, edx
    mov edx, [esp]
    mov ecx, 2
    mov ecx, ecx
    shl ecx, 2
    mov edx, edx
    add edx, esp
    mov eax, [esp]
    jmp L126
L126:
    
    add esp, 0
    pop ebp
    ret
    ; end of ??GetNext$List

??Print$List:
    push ebp
    mov ebp, esp
    sub esp, 16
L129:
    mov ecx, 16
    mov eax, ebp
    sub eax, ecx
    mov [eax], ebx
    mov eax, 12
    mov ebx, ebp
    sub ebx, eax
    mov [esi], esi
    mov eax, 4
    mov esi, ebp
    sub esi, eax
    mov [edi], edi
    mov edi, 0
    mov edi, edi
    mov edi, 0
    mov ebx, edi
    mov edi, 0
    mov eax, edi
    mov edi, 8
    mov esi, ebp
    sub esi, edi
    mov [edi], eax
    mov esi, 8
    mov edi, ebp
    add edi, esi
    mov edi, [esp]
    mov eax, edi
    mov edi, 8
    mov esi, ebp
    sub esi, edi
    mov [edi], eax
    mov edi, 8
    mov esi, ebp
    add esi, edi
    mov esi, [esp]
    mov edi, 3
    mov edi, edi
    shl edi, 2
    mov edi, esi
    add edi, esp
    mov edi, [esp]
    mov ebx, edi
    mov esi, 8
    mov edi, ebp
    add edi, esi
    mov edi, [esp]
    mov esi, 1
    mov esi, esi
    shl esi, 2
    mov edi, edi
    add edi, esp
    mov edi, [esp]
    mov edi, edi
L67:
    mov edi, 0
    cmp ebx, edi
    je L130
    jmp L70
L130:
    jmp L71
L70:
    mov edi, 0
L72:
    mov esi, 0
    cmp edi, esi
    je L131
    jmp L69
L131:
    jmp L68
L69:
    mov esi, edi
    push esi
    mov edi, 204
    push edi
    call _assertPtr
    push esi
    mov eax, 0
    mov edi, esi
    add edi, eax
    mov edi, [esp]
    mov esi, 1
    mov esi, esi
    shl esi, 2
    mov edi, edi
    add edi, esp
    mov edi, [esp]
    call edi
    push eax
    call _printInt
    mov esi, 8
    mov edi, ebp
    sub edi, esi
    mov edi, [esp]
    mov eax, edi
    mov esi, eax
    push esi
    mov edi, 205
    push edi
    call _assertPtr
    push esi
    mov edi, 0
    mov esi, esi
    add esi, edi
    mov edi, [esp]
    mov esi, 8
    mov esi, esi
    shl esi, 2
    mov edi, edi
    add edi, esp
    mov edi, [esp]
    call edi
    mov edi, 8
    mov esi, ebp
    sub esi, edi
    mov [edi], eax
    mov esi, 8
    mov edi, ebp
    sub edi, esi
    mov edi, [esp]
    mov eax, edi
    mov edi, eax
    push edi
    mov esi, 206
    push esi
    call _assertPtr
    push edi
    mov esi, 0
    mov edi, edi
    add edi, esi
    mov esi, [esp]
    mov edi, 6
    mov edi, edi
    shl edi, 2
    mov edi, esi
    add edi, esp
    mov edi, [esp]
    call edi
    mov ebx, eax
    mov esi, 8
    mov edi, ebp
    sub edi, esi
    mov edi, [esp]
    mov eax, edi
    mov edi, eax
    push edi
    mov esi, 207
    push esi
    call _assertPtr
    push edi
    mov esi, 0
    mov edi, edi
    add edi, esi
    mov edi, [esp]
    mov esi, 7
    mov esi, esi
    shl esi, 2
    mov edi, edi
    add edi, esp
    mov edi, [esp]
    call edi
    mov edi, eax
    jmp L67
L71:
    mov edi, 1
    jmp L72
L68:
    mov eax, 1
    mov edi, 16
    mov esi, ebp
    sub esi, edi
    mov edi, [esp]
    mov ebx, edi
    mov esi, 12
    mov edi, ebp
    sub edi, esi
    mov edi, [esp]
    mov esi, edi
    mov ecx, 4
    mov edi, ebp
    sub edi, ecx
    mov edi, [esp]
    mov edi, edi
    jmp L128
L128:
    
    add esp, 16
    pop ebp
    ret
    ; end of ??Print$List

??Start$LL:
    push ebp
    mov ebp, esp
    sub esp, 24
L133:
    mov ecx, 20
    mov edx, ebp
    sub edx, ecx
    mov [edx], ebx
    mov ebx, 16
    mov edx, ebp
    sub edx, ebx
    mov [edx], esi
    mov ebx, 12
    mov edx, ebp
    sub edx, ebx
    mov [edx], edi
    mov edx, 0
    mov esi, edx
    mov edx, 0
    mov edx, edx
    mov ebx, 24
    mov edi, ebp
    sub edi, ebx
    mov [edx], edx
    mov edx, 0
    mov esi, edx
    mov edx, 0
    mov edx, edx
    mov edx, 0
    mov edi, edx
    mov edx, 0
    mov eax, edx
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov [edx], eax
    mov edx, 16
    push edx
    push esp
    call _newObject
    mov edi, esp
    mov edi, edi
    push edi
    mov edx, 229
    push edx
    call _assertPtr
    push edi
    mov ebx, 0
    mov edx, edi
    add edx, ebx
    mov ebx, [esp]
    mov edx, 0
    mov edx, edx
    shl edx, 2
    mov edx, ebx
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov eax, edi
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov [edx], eax
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 231
    push edx
    call _assertPtr
    push edi
    mov edx, 0
    mov edi, edi
    add edi, edx
    mov edx, [esp]
    mov edi, 0
    mov edi, edi
    shl edi, 2
    mov edx, edx
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov eax, [esp]
    mov ebx, eax
    push ebx
    mov edx, 232
    push edx
    call _assertPtr
    push ebx
    mov edi, 0
    mov edx, ebx
    add edx, edi
    mov edx, [esp]
    mov edi, 9
    mov edi, edi
    shl edi, 2
    mov edx, edx
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, 16
    push edx
    push esp
    call _newObject
    mov esi, esp
    mov ebx, esi
    push ebx
    mov edx, 236
    push edx
    call _assertPtr
    push ebx
    mov edx, 25
    push edx
    mov edx, 37000
    push edx
    mov edx, 0
    push edx
    mov edi, 0
    mov edx, ebx
    add edx, edi
    mov edi, [esp]
    mov edx, 0
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 237
    push edx
    call _assertPtr
    push edi
    push esi
    mov ebx, 0
    mov edx, edi
    add edx, ebx
    mov edi, [esp]
    mov edx, 2
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov [edx], eax
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 238
    push edx
    call _assertPtr
    push edi
    mov ebx, 0
    mov edx, edi
    add edx, ebx
    mov edi, [esp]
    mov edx, 9
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, 10000000
    push edx
    call _printInt
    mov edx, 16
    push edx
    push esp
    call _newObject
    mov esi, esp
    mov edi, esi
    push edi
    mov edx, 242
    push edx
    call _assertPtr
    push edi
    mov edx, 39
    push edx
    mov edx, 42000
    push edx
    mov edx, 1
    push edx
    mov ebx, 0
    mov edx, edi
    add edx, ebx
    mov edx, [esp]
    mov edi, 0
    mov edi, edi
    shl edi, 2
    mov edx, edx
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, esi
    mov ebx, 24
    mov edi, ebp
    sub edi, ebx
    mov [edx], edx
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 244
    push edx
    call _assertPtr
    push edi
    push esi
    mov edx, 0
    mov edi, edi
    add edi, edx
    mov edi, [esp]
    mov edx, 2
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov [edx], eax
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 245
    push edx
    call _assertPtr
    push edi
    mov ebx, 0
    mov edx, edi
    add edx, ebx
    mov edx, [esp]
    mov edi, 9
    mov edi, edi
    shl edi, 2
    mov edx, edx
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, 10000000
    push edx
    call _printInt
    mov edx, 16
    push edx
    push esp
    call _newObject
    mov esi, esp
    mov edi, esi
    push edi
    mov edx, 249
    push edx
    call _assertPtr
    push edi
    mov edx, 22
    push edx
    mov edx, 34000
    push edx
    mov edx, 0
    push edx
    mov ebx, 0
    mov edx, edi
    add edx, ebx
    mov edi, [esp]
    mov edx, 0
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 250
    push edx
    call _assertPtr
    push edi
    push esi
    mov edx, 0
    mov edi, edi
    add edi, edx
    mov edi, [esp]
    mov edx, 2
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov [edx], eax
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 251
    push edx
    call _assertPtr
    push edi
    mov edx, 0
    mov edi, edi
    add edi, edx
    mov edi, [esp]
    mov edx, 9
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, 16
    push edx
    push esp
    call _newObject
    mov esi, esp
    mov ebx, esi
    push ebx
    mov edx, 253
    push edx
    call _assertPtr
    push ebx
    mov edx, 27
    push edx
    mov edx, 34000
    push edx
    mov edx, 0
    push edx
    mov edi, 0
    mov edx, ebx
    add edx, edi
    mov edi, [esp]
    mov edx, 0
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 254
    push edx
    call _assertPtr
    push edi
    mov edx, 24
    mov ebx, ebp
    sub ebx, edx
    mov edx, [esp]
    mov edx, edx
    push edx
    mov edx, 0
    mov edi, edi
    add edi, edx
    mov edx, [esp]
    mov edi, 5
    mov edi, edi
    shl edi, 2
    mov edx, edx
    add edx, esp
    mov edx, [esp]
    call edx
    push eax
    call _printInt
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov eax, edx
    mov ebx, eax
    push ebx
    mov edx, 255
    push edx
    call _assertPtr
    push ebx
    push esi
    mov edi, 0
    mov edx, ebx
    add edx, edi
    mov edi, [esp]
    mov edx, 5
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    push eax
    call _printInt
    mov edx, 10000000
    push edx
    call _printInt
    mov edx, 16
    push edx
    push esp
    call _newObject
    mov esi, esp
    mov edi, esi
    push edi
    mov edx, 259
    push edx
    call _assertPtr
    push edi
    mov edx, 28
    push edx
    mov edx, 35000
    push edx
    mov edx, 0
    push edx
    mov edx, 0
    mov edi, edi
    add edi, edx
    mov edi, [esp]
    mov edx, 0
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 260
    push edx
    call _assertPtr
    push edi
    push esi
    mov ebx, 0
    mov edx, edi
    add edx, ebx
    mov edi, [esp]
    mov edx, 2
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov [edx], eax
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 261
    push edx
    call _assertPtr
    push edi
    mov edx, 0
    mov edi, edi
    add edi, edx
    mov edi, [esp]
    mov edx, 9
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, 2220000
    push edx
    call _printInt
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov edx, [esp]
    mov eax, edx
    mov ebx, eax
    push ebx
    mov edx, 264
    push edx
    call _assertPtr
    push ebx
    mov edx, 24
    mov edi, ebp
    sub edi, edx
    mov edx, [esp]
    mov edx, edx
    push edx
    mov edi, 0
    mov edx, ebx
    add edx, edi
    mov edx, [esp]
    mov edi, 4
    mov edi, edi
    shl edi, 2
    mov edx, edx
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov [edx], eax
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov edx, [esp]
    mov eax, edx
    mov edx, eax
    mov edi, 4
    mov ebx, ebp
    sub ebx, edi
    mov [edx], edx
    mov edi, 4
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    push edx
    mov edx, 265
    push edx
    call _assertPtr
    mov edi, 4
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov edx, edx
    push edx
    mov edi, 0
    mov edx, 4
    mov ebx, ebp
    sub ebx, edx
    mov edx, [esp]
    mov edx, edx
    mov edx, edx
    add edx, edi
    mov edi, [esp]
    mov edx, 9
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, 33300000
    push edx
    call _printInt
    mov edi, 8
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 269
    push edx
    call _assertPtr
    push edi
    push esi
    mov edx, 0
    mov edi, edi
    add edi, edx
    mov edi, [esp]
    mov edx, 4
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov [edx], eax
    mov edx, 8
    mov edi, ebp
    sub edi, edx
    mov edx, [esp]
    mov eax, edx
    mov edi, eax
    push edi
    mov edx, 270
    push edx
    call _assertPtr
    push edi
    mov edx, 0
    mov edi, edi
    add edi, edx
    mov edi, [esp]
    mov edx, 9
    mov edx, edx
    shl edx, 2
    mov edx, edi
    add edx, esp
    mov edx, [esp]
    call edx
    mov edx, eax
    mov edx, 44440000
    push edx
    call _printInt
    mov eax, 0
    mov edi, 20
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov ebx, edx
    mov edi, 16
    mov edx, ebp
    sub edx, edi
    mov edx, [esp]
    mov esi, edx
    mov edx, 12
    mov edi, ebp
    sub edi, edx
    mov edx, [esp]
    mov edi, edx
    jmp L132
L132:
    
    add esp, 24
    pop ebp
    ret
    ; end of ??Start$LL
